Managing multiple separate point-to-point connections from a storage source to an end user or application is very inefficient, as the same piece of information will be sent multiple times simultaneously. Consider the example of a group of people in one office listening to an audio stream from a server somewhere on the Internet, where everyone in the room is listening to the same streaming content, such as a conference call.
In known systems, data is streamed by unicast or point-to-point algorithms such as a TCPIP/IP connection from a centralized location (for example a Real Audio server) or by the use of a multicast. The use of IP multicasting is a method to reduce a huge amount of bandwidth and waste by only sending the data out to a preset collection of multicast nodes. The drawbacks to using multicasting is that the preset number of multicast nodes must be known beforehand and many routers over the public Internet do not understand the multicast protocol. Thus, multicasting is limited to synchronized streams, and foreknowledge of the multicast servers is required.
P2P protocols, through the use of complex hashing algorithms, can pull multiple file segments from separate sources and re-assemble those segments into a file. P2P protocols, however, require that the source file must be intact first, before the audio or video can be viewed. Also, regular TCP/IP can be wasteful of bandwidth, as it requires high utilization from the streaming data server. Also, systems require that the file be re-assembled before playback, and therefore, cannot be streamed. Thus, while the file transfer protocols are much more efficient, they do not allow for multiple streams to be re-assembled real-time and operated upon real-time.
Accordingly, there exists a need in the art to overcome the deficiencies and limitations described hereinabove.